/**
  ******************************************************************************
  * @file    fvr.h
  * @author  ashuai0110
  * @version V1.0
  * @date    2024-01-18
  * @brief   fvr驱动,适用于PIC16(L)F1788_9
  *
  ******************************************************************************
  * @attention
  *
  ******************************************************************************
  */

#ifndef __FVR_H
#define __FVR_H

#ifdef __cplusplus
extern "C" {
#endif

/* 包含头文件-----------------------------------------------------------------*/
#include "common.h"

/* 宏定义---------------------------------------------------------------------*/
#define FVR_CMD(x)                              (FVREN = (x)) /* FVR开关 0:关闭 1:使能 */
/* fvr_voltage 固定参考电压选择 */ 
#define FVR_VOL_CLOSE                           (0u) /* 固定参考电压输出关闭 */
#define FVR_VOL_1X                              (1u) /* 固定参考电压输出1.024V */
#define FVR_VOL_2X                              (2u) /* 固定参考电压输出2.048V */
#define FVR_VOL_4X                              (3u) /* 固定参考电压输出4.096V */

/* 类型定义-------------------------------------------------------------------*/

/* 全局变量-------------------------------------------------------------------*/
typedef struct fvr_config {
    uint8_t dacVoltage : 4; /* 比较器和DAC固定参考电压选择 @ref fvr_voltage */ 
    uint8_t adcVoltage : 4; /* ADC固定参考电压选择 @ref fvr_voltage */
} fvr_config_t;
    
/* 函数原型-------------------------------------------------------------------*/
void fvr_init(fvr_config_t config);
void fvr_de_init(void);

#ifdef __cplusplus
}
#endif

#endif /* fvr.h */